package br.com.cnpv.modelo.entity;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name="perfil")
@NamedQueries(
		{ 
			@NamedQuery(name="Perfil.buscar", query="select p from Perfil p where p.nmPerfil like :nmPerfil"),
			@NamedQuery(name="Perfil.listar", query="select p from Perfil p order by p.nmPerfil asc")
		}
	)
public class Perfil {

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id")
	private Integer id;
	
	@Column(name="nm_perfil")
	private String nmPerfil;
	
	@Column(name="dt_incl")
	private Date dtIncl;
	
	@Column(name="dt_alter")
	private Date dtAlter;
	
	@Column(name="dt_inat")
	private Date dtInat;
	
	@Column(name="id_usuario")
	private Integer idUsuario;

	@OneToMany(fetch=FetchType.EAGER)
	@JoinColumn(name="id_perfil", insertable=false, updatable=false, referencedColumnName="id")
	private List<PerfilFuncionalidade> funcionalidadeList;

	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getNmPerfil() {
		return nmPerfil;
	}

	public void setNmPerfil(String nmPerfil) {
		this.nmPerfil = nmPerfil;
	}

	public Date getDtIncl() {
		return dtIncl;
	}

	public void setDtIncl(Date dtIncl) {
		this.dtIncl = dtIncl;
	}

	public Date getDtAlter() {
		return dtAlter;
	}

	public void setDtAlter(Date dtAlter) {
		this.dtAlter = dtAlter;
	}

	public Date getDtInat() {
		return dtInat;
	}

	public void setDtInat(Date dtInat) {
		this.dtInat = dtInat;
	}

	public Integer getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(Integer idUsuario) {
		this.idUsuario = idUsuario;
	}

	public List<PerfilFuncionalidade> getFuncionalidadeList() {
		return funcionalidadeList;
	}

	public void setFuncionalidadeList(List<PerfilFuncionalidade> funcionalidadeList) {
		this.funcionalidadeList = funcionalidadeList;
	}



}
